public class Reverse {
    /*给出一个 32 位的有符号整数，你需要将这个整数中每位上的数字进行反转.
     *假设我们的环境只能存储得下 32 位的有符号整数
     *则其数值范围为 [−231,  231 − 1]。
     * 请根据这个假设，如果反转后整数溢出那么就返回 0。
     * */

    /*输入: 123 输出: 321
     *输入: -123 输出: -321
     * 输入: 120 输出: 21
     * */
    public static int reverse(int x) {
        long result = 0;
        while (x != 0) {
            result = result * 10 + x % 10;
            x /= 10;
        }
        if (result > Integer.MAX_VALUE || result < Integer.MIN_VALUE)
            result = 0;
        return (int)result;
    }
    public static void main(String[] args){
       System.out.println(reverse(-2147483648));
    }
}
/*
*利用long来避免和检测整数溢出问题
 */

